package com.example.bourse.filter;

import com.example.bourse.core.enums.ReqCodeEnum;
import com.example.bourse.core.result.ApiResult;
import com.example.bourse.filter.exception.CustomException;
import com.example.bourse.filter.exception.RootPathException;
import lombok.extern.slf4j.Slf4j;
import org.noear.solon.annotation.Component;
import org.noear.solon.core.handle.Context;
import org.noear.solon.core.handle.Filter;
import org.noear.solon.core.handle.FilterChain;

/**
 * @author wangzhiqi
 * @version 1.0
 * @description: 统一请求路由过滤器
 * @date 2025/1/9 14:07
 */
@Slf4j
@Component
public class RootPathFilter implements Filter {

    @Override
    public void doFilter(Context ctx, FilterChain chain) throws Throwable {
        // 忽略 /favicon.ico 请求
        if ("/favicon.ico".equals(ctx.path())) {
            ctx.status(404);
            return;
        }
        // 忽略 /doc.html 请求
        if ("/doc.html".equals(ctx.path())) {
            ctx.status(404);
            return;
        }

        // 允许静态资源路径通过
        if (ctx.path().startsWith("/webjars") || ctx.path().startsWith("/static")) {
            chain.doFilter(ctx);
            return;
        }

        // 如果请求路径不是以 /manage 开头，返回 404
//        if (!ctx.path().startsWith("/bourse")) {
//            log.error("请求路径错误 {}", ctx.path());
//            return;
//        }

        // 继续执行后续逻辑
        chain.doFilter(ctx);
    }
}
